package com.example.hotHub.utils;

import org.apache.commons.lang3.StringUtils;

import java.nio.charset.Charset;
import java.util.Base64;

/**
 * Description
 *
 * @Author sunpeijie
 * @Date 2020/06/21 12:04
 * @Version 1.0
 */
public class Base64Utils {

    final static Base64.Decoder decoder = Base64.getDecoder();

    final static Base64.Encoder encoder = Base64.getEncoder();

    /**
     * 进行BASE64加密
     *
     * @param data 加密的字节数组
     * @return 解密后的结果
     * @author denggonghai 2018-06-01 19:33:01
     */
    public static String encode(byte[] data) {
        return encoder.encodeToString(data);
    }

    /**
     * 进行BASE64加密
     *
     * @param data 加密的字符串
     * @return 解密后的结果
     */
    public static String encode(String data) {
        return encode(data, Charset.forName("UTF-8"));
    }

    /**
     * 进行BASE64加密
     *
     * @param data    加密的字符串
     * @param charset 字符类型
     * @return 解密后的结果
     */
    private static String encode(String data, Charset charset) {
        if (StringUtils.isNotEmpty(data)) {
            return encoder.encodeToString(data.getBytes(charset));
        }
        return "";
    }

    /**
     * BASE64解密
     *
     * @param encodedText
     * @return
     */
    public static byte[] decode(String encodedText) {
        return decoder.decode(encodedText);
    }

    public static byte[] decode(byte[] encodedText) {
        return decoder.decode(encodedText);
    }
}
